package cn.net.isir.common;

import java.util.HashMap;
import java.util.Map;

/**
 * @author liuxubo
 * @filename WxErrCode.java
 * @package cn.net.isir.common
 * @email lxb@isir.net.cn
 * @date 2018/08/28
 * @comment
 * @since 1.7
 */
public final class WxErrCode {
    /**
     * 微信获取微信unionid
     * https://api.weixin.qq.com/sns/jscode2session
     */
    private static Map<String, String> getUnionidErr;

    public static String getUnionidErr(String errCode) {
        return getUnionidErr.get(errCode);
    }

    /**
     * 微信支付----统一下单接口异常信息
     * https://api.mch.weixin.qq.com/pay/unifiedorder
     */
    private static Map<String, String> wxPayErr;

    public static String wxPayErr(String errCode) {
        return wxPayErr.get(errCode);
    }


    static {
        getUnionidErr = new HashMap<>();
        getUnionidErr.put("-1", "系统繁忙");
        getUnionidErr.put("0", "请求成功");
        getUnionidErr.put("40001", "验证失败");
        getUnionidErr.put("40002", "不合法的凭证类型");
        getUnionidErr.put("40003", "不合法的OpenID");
        getUnionidErr.put("40004", "不合法的媒体文件类型");
        getUnionidErr.put("40005", "不合法的文件类型");
        getUnionidErr.put("40006", "不合法的文件大小");
        getUnionidErr.put("40007", "不合法的媒体文件id");
        getUnionidErr.put("40008", "不合法的消息类型");
        getUnionidErr.put("40009", "不合法的图片文件大小");
        getUnionidErr.put("40010", "不合法的语音文件大小");
        getUnionidErr.put("40011", "不合法的视频文件大小");
        getUnionidErr.put("40012", "不合法的缩略图文件大小");
        getUnionidErr.put("40013", "不合法的APPID");
        getUnionidErr.put("40014", "不合法的access_token");
        getUnionidErr.put("40015", "不合法的菜单类型");
        getUnionidErr.put("40016", "不合法的按钮个数");
        getUnionidErr.put("40017", "不合法的按钮个数");
        getUnionidErr.put("40018", "不合法的按钮名字长度");
        getUnionidErr.put("40019", "不合法的按钮KEY长度");
        getUnionidErr.put("40020", "不合法的按钮URL长度");
        getUnionidErr.put("40021", "不合法的菜单版本号");
        getUnionidErr.put("40022", "不合法的子菜单级数");
        getUnionidErr.put("40023", "不合法的子菜单按钮个数");
        getUnionidErr.put("40024", "不合法的子菜单按钮类型");
        getUnionidErr.put("40025", "不合法的子菜单按钮名字长度");
        getUnionidErr.put("40026", "不合法的子菜单按钮KEY长度");
        getUnionidErr.put("40027", "不合法的子菜单按钮URL长度");
        getUnionidErr.put("40028", "不合法的自定义菜单使用用户");
        getUnionidErr.put("41001", "缺少access_token参数");
        getUnionidErr.put("41002", "缺少appid参数");
        getUnionidErr.put("41003", "缺少refresh_token参数");
        getUnionidErr.put("41004", "缺少secret参数");
        getUnionidErr.put("41005", "缺少多媒体文件数据");
        getUnionidErr.put("41006", "缺少media_id参数");
        getUnionidErr.put("41007", "缺少子菜单数据");
        getUnionidErr.put("42001", "access_token超时");
        getUnionidErr.put("43001", "需要GET请求");
        getUnionidErr.put("43002", "需要POST请求");
        getUnionidErr.put("43003", "需要HTTPS请求");
        getUnionidErr.put("44001", "多媒体文件为空");
        getUnionidErr.put("44002", "POST的数据包为空");
        getUnionidErr.put("44003", "图文消息内容为空");
        getUnionidErr.put("45001", "多媒体文件大小超过限制");
        getUnionidErr.put("45002", "消息内容超过限制");
        getUnionidErr.put("45003", "标题字段超过限制");
        getUnionidErr.put("45004", "描述字段超过限制");
        getUnionidErr.put("45005", "链接字段超过限制");
        getUnionidErr.put("45006", "图片链接字段超过限制");
        getUnionidErr.put("45007", "语音播放时间超过限制");
        getUnionidErr.put("45008", "图文消息超过限制");
        getUnionidErr.put("45009", "接口调用超过限制");
        getUnionidErr.put("45010", "创建菜单个数超过限制");
        getUnionidErr.put("46001", "不存在媒体数据");
        getUnionidErr.put("46002", "不存在的菜单版本");
        getUnionidErr.put("46003", "不存在的菜单数据");
        getUnionidErr.put("40029", "登录多次导致code重复或appid和secret不对应");

        //微信模板消息
        getUnionidErr.put("40037", "template_id不正确");
        getUnionidErr.put("41028", "form_id不正确，或者过期");
        getUnionidErr.put("41029", "form_id已被使用");
        getUnionidErr.put("41030", "page不正确");


    }

    static {
        wxPayErr = new HashMap<>();
        wxPayErr.put("NOAUTH", "商户无此接口权限");//商户未开通此接口权限; 请商户前往申请此接口权限
        wxPayErr.put("NOTENOUGH", "余额不足");//用户帐号余额不足; 用户帐号余额不足，请用户充值或更换支付卡后再支付
        wxPayErr.put("ORDERPAID", "商户订单已支付");//商户订单已支，无需重复操作; 商户订单已支付，无需更多操作
        wxPayErr.put("ORDERCLOSED", "订单已关闭");//当前订单已关 ，无法支付; 当前订单已关闭，请重新下单
        wxPayErr.put("SYSTEMERROR", "系统错误");//系统超时; 系统异常，请用相同参数重新调用
        wxPayErr.put("APPID_NOT_EXIST", "APPID不存在");//参数中缺少APPID; 请检查APPID是否正确
        wxPayErr.put("MCHID_NOT_EXIST", "MCHID不存在");//参数中缺少MCHID; 请检查MCHID是否正确
        wxPayErr.put("APPID_MCHID_NOT_MATCH", "appid和mch_id不匹配");//appid和mch_id不匹配; 请确认appid和mch_id是否匹配
        wxPayErr.put("LACK_PARAMS", "缺少参数");//缺少必要的请求参数; 请检查参数是否齐全
        wxPayErr.put("OUT_TRADE_NO_USED", "商户订单号重复");//同一笔交易不能多次提交; 请核实商户订单号是否重复提交
        wxPayErr.put("SIGNERROR", "签名错误");//参数签名结果不正确; 请检查签名参数和方法是否都符合签名算法要求
        wxPayErr.put("XML_FORMAT_ERROR", "XML格式错误");//XML格式错误; 请检查XML参数格式是否正确
        wxPayErr.put("REQUIRE_POST_METHOD", "请使用post方法");//未使用post传递参数; 请检查请求参数是否通过post方法提交
        wxPayErr.put("POST_DATA_EMPTY", "post数据为空");//post数据不能为空; 请检查post数据是否为空
        wxPayErr.put("NOT_UTF8", "编码格式错误");//未使用指定编码格式; 请使用UTF-8编码格式
    }
}
